package cn.jasonone.jame.basic;

import cn.jasonone.jame.model.Rect;
import javafx.scene.input.MouseEvent;

/**
 * 鼠标事件处理器
 *
 * @author Jason
 * @since 1.0.0
 */
public interface MouseEventHandler {

    /**
     * 鼠标点击事件
     *
     * @param e 事件对象
     */
    default void mouseClicked(MouseEvent e) {
    }



    /**
     * 鼠标拖动事件
     *
     * @param e 事件对象
     */
    default void mouseDragged(MouseEvent e) {
    }



    /**
     * 鼠标进入事件
     *
     * @param e 事件对象
     */
    default void mouseEntered(MouseEvent e) {
    }



    /**
     * 鼠标退出事件
     *
     * @param e 事件对象
     */
    default void mouseExited(MouseEvent e) {
    }



    /**
     * 鼠标移动事件
     *
     * @param e 事件对象
     */
    default void mouseMoved(MouseEvent e) {
    }



    /**
     * 鼠标按下事件
     *
     * @param e 事件对象
     */
    default void mousePressed(MouseEvent e) {
    }



    /**
     * 鼠标释放事件
     *
     * @param e 事件对象
     */
    default void mouseReleased(MouseEvent e) {
    }



    /**
     * 得到当前区域
     *
     * @return 区域对象
     */
    Rect getRect();
}
